Free Space Management
Table of Contents
In Address Translation: Segmentation, we mentioned that segmentation introduces external fragmentation.
- Splitting and Coalescing
- A common technique used in allocators. Splitting is that, For example, to allocate for \(A\) bytes within a \(B\) bytes block, we will split this block into 2 parts \(A,B-A\). While coalescing is the contrast that it merges adjacent continuous blocks.
- Header Block
- Allocators store a little bit of extra information in header block which is kept in memory, usually before the allocated memory. Minimal implementation should contain a
sizeandmagic. Thus, allocators usually need “required memory” + “memory for header block”.